ট্রানজেকশন আইসোলেশন লেভেল (Transaction Isolation Levels) হল একটি ডেটাবেজের ট্রানজেকশন সিস্টেমের এমন একটি বৈশিষ্ট্য, যা নির্ধারণ করে একাধিক ট্রানজেকশন একসাথে চালানোর সময়, কীভাবে তাদের মধ্যে ডেটার একে অপরের উপর প্রভাব ফেলবে। এটি মূলত ডেটার সঠিকতা এবং ধারাবাহিকতা নিশ্চিত করতে ব্যবহৃত হয়, বিশেষ করে একাধিক ট্রানজেকশন একই সময়ে সম্পাদিত হলে।
ডেটাবেজ সিস্টেমে সাধারণত ৪টি প্রধান ট্রানজেকশন আইসোলেশন লেভেল রয়েছে:
এটি সবচেয়ে নিম্ন স্তরের আইসোলেশন লেভেল। এই লেভেলে একটি ট্রানজেকশন অন্য ট্রানজেকশনের অকমিটেড (committed না হওয়া) ডেটা পড়তে পারে, যা "ডার্টি রিড" (dirty read) হিসেবে পরিচিত। এর মানে, একটি ট্রানজেকশন অন্য ট্রানজেকশন দ্বারা পরিবর্তিত হওয়া ডেটা অ্যাক্সেস করতে পারে, যদিও সেই পরিবর্তন শেষ হয়নি বা কমিট হয়নি।
এই আইসোলেশন লেভেলে একটি ট্রানজেকশন শুধুমাত্র অন্য ট্রানজেকশনের কমিটেড (committed) ডেটা পড়তে পারে। অর্থাৎ, একটি ট্রানজেকশন সম্পূর্ণভাবে শেষ না হওয়া পর্যন্ত অন্য ট্রানজেকশন তার পরিবর্তিত ডেটা পড়তে পারে না। এটি "ফ্যান্টম রিড" (phantom read) এবং "ডার্টি রিড" (dirty read) থেকে রক্ষা করে।
এই আইসোলেশন লেভেলে একটি ট্রানজেকশন যখন কোনো ডেটা পড়ে, তখন সে ডেটার মান শেষ ট্রানজেকশনের মধ্যে স্থির থাকবে। এতে "ফ্যান্টম রিড" সমস্যা কমে যায়, কিন্তু কিছু ক্ষেত্রে "ফ্যান্টম রেকর্ড" (phantom record) তৈরি হতে পারে।
এটি সবচেয়ে শক্তিশালী এবং সর্বোচ্চ আইসোলেশন লেভেল। এই লেভেলে, সমস্ত ট্রানজেকশন সম্পূর্ণভাবে একে অপরের থেকে আলাদা এবং একে অপরের উপর কোনো প্রভাব ফেলতে পারে না। অর্থাৎ, একে অপরের সঙ্গে serially (একটির পর একটি) সম্পাদিত হবে। এতে কোনো ধরনের "ডার্টি রিড", "নন-রিপিটেবল রিড", বা "ফ্যান্টম রিড" সমস্যা থাকে না।
প্রতিটি আইসোলেশন লেভেলের সুবিধা এবং অসুবিধা আছে। আপনার প্রয়োজনে কোন আইসোলেশন লেভেল ব্যবহার করবেন তা নির্ভর করবে আপনার অ্যাপ্লিকেশন এবং ডেটাবেজের কাজের ধরন ও পারফরম্যান্সের প্রয়োজনের উপর।
common.read_more